﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.IO;

namespace QuanLyBepAnTuThien
{
    public partial class frmThietLapKetNoi : Form
    {
        public frmThietLapKetNoi()
        {
            InitializeComponent();
        }

        private void rdWindowauthention_CheckedChanged(object sender, EventArgs e)
        {
            if (radioQuyenWindow.Checked == true)
            {
                txtPass.Enabled = false;
                txtUsername.Enabled = false;
            }
            else
            {
                txtUsername.Enabled = true;
                txtPass.Enabled = true;
            }
        }

        private void frmThietLapKetNoi_Load(object sender, EventArgs e)
        {
            radioQuyenWindow.Checked = true;
            txtPass.Enabled = false;
            txtUsername.Enabled = false;
            //txtDatabase.Enabled = false;
            cobDatabase.Enabled = false;
        }

        private void btnTestconnect_Click(object sender, EventArgs e)
        {
            if (radioQuyenWindow.Checked == true)
            {
                cobDatabase.Items.Clear();
                SqlConnection con = new SqlConnection("Data Source=" + txtServer.Text + ";Initial Catalog=master;Integrated Security=True;");
                SqlCommand cmd = new SqlCommand("SP_DATABASES", con);
                //SP_DATABASES là một store procedure có sẵn của sql server để lấy ra tất cả csdl trong sql server
                SqlDataReader reader;
                try
                {
                    con.Open();
                    reader = cmd.ExecuteReader();
                    MessageBox.Show("Kết nối thành công đến server " + txtServer.Text + "!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    //txtDatabase.Enabled = true;
                    cobDatabase.Enabled = true;
                    while (reader.Read())
                    {
                        cobDatabase.Items.Add(reader[0].ToString());
                    }

                }
                catch
                {
                    MessageBox.Show("Lỗi, vui lòng thử lại!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                finally
                {
                    if (con.State == ConnectionState.Open)
                        con.Close();

                    con.Dispose();
                    cmd.Dispose();
                }
            }
            if (rdSqlauthention.Checked == true)
            {
                cobDatabase.Items.Clear();
                SqlConnection m_Conn = new SqlConnection("Data Source=" + txtServer.Text + ";Initial Catalog=master;User Id=" + txtUsername.Text + ";Password=" + txtPass.Text + ";");
                SqlCommand m_Cmd = new SqlCommand("SP_DATABASES", m_Conn);
                SqlDataReader m_DReader;

                try
                {
                    m_Conn.Open();
                    m_DReader = m_Cmd.ExecuteReader();
                    while (m_DReader.Read())
                    {
                        cobDatabase.Items.Add(m_DReader[0].ToString());
                    }
                    MessageBox.Show("Kết nối thành công!", "SUCCESSED", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (SqlException sqlEx)
                {
                    MessageBox.Show("Lỗi, vui lòng thử lại!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                finally
                {
                    if (m_Conn.State == ConnectionState.Open)
                        m_Conn.Close();

                    m_Conn.Dispose();
                    m_Cmd.Dispose();
                }
            }
        }

        private void btnConnect_Click(object sender, EventArgs e)
        {
            if (radioQuyenWindow.Checked == true)
            {
                if (txtServer.Text == "")
                {
                    MessageBox.Show("Bạn chưa nhập tên serrver!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }                
                else
                {
                    StreamWriter writer = new StreamWriter("connectinfo.txt");
                    writer.WriteLine("Server:" + txtServer.Text);
                    writer.WriteLine("Database:" + cobDatabase.Text);
                    writer.WriteLine("UserName:" + txtUsername.Text);
                    writer.WriteLine("PassWord:" + txtPass.Text);
                    writer.WriteLine("Quyen:1");
                    writer.Close();
                    MessageBox.Show("Thành Công!\nHệ thống sẽ khởi động lại ngay bây giờ!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Application.Restart();
                }
            }
            else
            {
                if (txtServer.Text == "")
                {
                    MessageBox.Show("Bạn chưa nhập tên serrver!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else if (txtUsername.Text == "")
                {
                    MessageBox.Show("Bạn chưa nhập username!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else if (txtPass.Text == "")
                {
                    MessageBox.Show("Bạn chưa nhập password!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    StreamWriter writer = new StreamWriter("connectinfo.txt");
                    writer.WriteLine("Server:" + txtServer.Text);
                    writer.WriteLine("Database:" + cobDatabase.Text);
                    writer.WriteLine("UserName:" + txtUsername.Text);
                    writer.WriteLine("PassWord:" + txtPass.Text);
                    writer.WriteLine("Quyen:2");
                    writer.Close();
                    MessageBox.Show("Thành Công!\nHệ thống sẽ khởi động lại ngay bây giờ!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Application.Restart();
                }
            }
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void frmThietLapKetNoi_FormClosing(object sender, FormClosingEventArgs e)
        {
            Application.Exit();
        }
    }
}
